package com.mhkj.common.timer;

import javax.annotation.Resource;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import com.mhkj.common.timer.service.AutoDelayService;
import com.mhkj.common.timer.service.AutoSureProgress;
import com.mhkj.common.timer.service.StateUpdateService;

/**
 * 定时
 * @author mics
 * @date 2018年8月23日
 * @version 1.0
 */
@Component
public class TimeExcutor {
	@Resource
	private AutoSureProgress autoSureProgress;
	@Resource
	private AutoDelayService autoDelayService;
	@Resource
	private StateUpdateService stateUpdateService;
	
	private static final Logger logger = LoggerFactory.getLogger(TimeExcutor.class);
	
      
      /**
       * 逾期检查
       * @author mics
       * @date 2018年9月12日
       * @version 1.0
       */
      @Scheduled(cron = "1 0 0 * * ?")
      public void overdueCheck(){
    	  logger.info("定时执行待办提醒......");
    	  stateUpdateService.overdueCheck();
    	  logger.info("定时执行待办提醒完成......");
      }
      
      /**
       * 风控检查
       * @author mics
       * @date 2018年9月12日
       * @version 1.0
       */
      @Scheduled(cron = "5 0 0 * * ?")
      public void riskCheck(){
    	  logger.info("风控检查开始......");
    	  stateUpdateService.riskCheck();
    	  logger.info("风控检查完成......");
      }
      
      /**
       * 计划开始
       * @author mics
       * @date 2018年9月12日
       * @version 1.0
       */
      @Scheduled(cron = "10 0 0 * * ?")
      public void planBeginCheck(){
    	  logger.info("定时执行待办提醒......");
    	  stateUpdateService.planBeginCheck();
    	  logger.info("定时执行待办提醒完成......");
      }
      
      /**
       * 汇报提醒
       * @author mics
       * @date 2018年9月12日
       * @version 1.0
       */
      @Scheduled(cron = "15 0 0 * * ?")
      public void huibaoCheck(){
    	  logger.info("定时执行汇报提醒......");
    	  stateUpdateService.huibaoCheck();
    	  logger.info("定时执行汇报提醒完成......");
      }
      
    /**
  	 * 定时确认进度 每天 23:40 自动确认进度
  	 * @author mics
  	 * @date 2018年8月23日
  	 * @version 1.0
  	 */
      @Scheduled(cron = "0 50 23 * * ?")
      public void AutoSureProgress(){
      	logger.info("定时自动确认开始......");
      	autoSureProgress.sure();
      	logger.info("定时自动确认完成......");
      }
      
    /**
	 * 自动延期 每天23点45分进行自动延期
	 * @author mics
	 * @date 2018年8月23日
	 * @version 1.0
	 */
    @Scheduled(cron = "0 55 23 * * ?")
    public void AutoDelay(){
  	  logger.info("定时自动延期开始......");
  	  autoDelayService.delay();
  	  logger.info("定时自动延期完成......");
    }
    
}
